//
// Created by iimt on 21-3-20.
//

#include <QtWidgets/QApplication>
#include <QCoreApplication>
#include <QString>
#include <QFormLayout>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QMessageBox>
#include <QtSql/QSqlRecord>
#include <QDebug>

#include "KSDemoDlg.h"


/**************************************************************************
* 函数名称：KSDemoDlg
* 函数功能：目标点管理对话框构造函数
* 输入参数：无
* 输出参数：无
* 返回数值：void
* 创建人员：
* 创建时间：2021-03-20
* 修改人员：
* 修改时间：
**************************************************************************/
KSDemoDlg::KSDemoDlg( QWidget *parent):QDialog(parent, Qt::WindowCloseButtonHint | Qt::WindowMinMaxButtonsHint | Qt::WindowStaysOnTopHint),
                                                                                   m_Group(this), m_PrimaryKeyLabel(this), m_PrimaryKeyLineEdit(this), m_QueryButton(this), m_NewButton(this), m_UpdateButton(this), m_DeleteButton(this), m_TabView(NULL),
                                                                                   m_OKButton(this),m_CancelButton(this),m_operator(-1)
{


    //=====================================================================
    // sukai
    //1.获取点位链表数据
    //maptestInfos_list =   IIMTDriver::getInstance()->maptestInfos_list;
    item_model = new QStandardItemModel();
    m_TabView = new QTableView(this);
    m_TabView->setEditTriggers(QAbstractItemView::NoEditTriggers);	//设置内容不可编辑
    /*************关联槽函数*********************/
    connect(&m_NewButton, SIGNAL(clicked()), this, SLOT(onNewButtonClicked()));
    connect(&m_QueryButton, SIGNAL(clicked()), this, SLOT(onQueryButtonClicked()));
    connect(&m_UpdateButton, SIGNAL(clicked()), this, SLOT(onUpdateButtonClicked()));
    connect(&m_DeleteButton, SIGNAL(clicked()), this, SLOT(onDeleteButtonClicked()));
    connect(&m_RefreshButton, SIGNAL(clicked()), this, SLOT(onRefreshButtonClicked()));
    connect(&m_PrimaryKeyLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(onPrimaryKeyLineEditEmpty(const QString &)));
    connect(m_TabView, SIGNAL(clicked(const QModelIndex &)), this, SLOT(onCurrentTableViewClicked(const QModelIndex &)));
    connect(&m_OKButton, SIGNAL(clicked()), this, SLOT(onOKButtonClicked()));
    connect(&m_CancelButton, SIGNAL(clicked()), this, SLOT(onCancelButtonClicked()));
    //sukai
       updateTimer = new QTimer(this);
       updateTimer->setInterval(500);

    connect(updateTimer, &QTimer::timeout, this, &KSDemoDlg::onUpdate);
    /*************模型关联视图*******************/
    //m_TabView->setModel(m_model);

    //sukai
    m_TabView->setModel(item_model);
    /*************选中行为为整行选中*************/
    m_TabView->setSelectionBehavior(QAbstractItemView::SelectRows);
    /*************对话框窗体初始化***************/
    //sukai //增加表格列名
    addHeaderData();
    //灵活增加界面右侧数据显示形式
    addrow();
    UiInit();
    /*************对话框窗体初始化***************/
    setFixedSize(900, 500);
    setWindowTitle(QStringLiteral("点位管理_TCP_GUI"));
    //sukai 设置返回函数
    setCallBack();
}

/**************************************************************************
* 函数名称：
* 函数功能：填充数据
* 输入参数：无
* 输出参数：无
* 返回数值：void
* 创建人员：
* 创建时间：2021-03-20
* 修改人员：
* 修改时间：
**************************************************************************/
//QString msg="/api/markers/query_name_list";
//sendMsg(msg);

//路点数据
void KSDemoDlg::setKSDemoDlg_testInfos_flg_CallBack( function<void(int)> kSDemoDlg_testInfos_flg_CallBack1){
    this->kSDemoDlg_testInfos_flg_CallBack = kSDemoDlg_testInfos_flg_CallBack1;

};



//sukai 发送数据
void KSDemoDlg::sendMsg(QString msg)
{
  IIMTDriver::getInstance()->sendMsg(msg);

}


//sukai 设置返回函数
void KSDemoDlg::setCallBack()
{
    //sukai 路点数据 传到函数传到 KSDemoDlg 去
    IIMTDriver::getInstance()->setKSDemoDlg_testInfos_listlistCallBack([this](QList<QMap<QString, QString> >  kSDemoDlg_testInfos_list){
        try {
            //填充数据
            setdata(kSDemoDlg_testInfos_list);
            /*************对话框窗体初始化***************/

            qDebug()<<" =======================setCallBack  路点数据 ========================== ";
            for(int y=0; y<kSDemoDlg_testInfos_list.size()>0; y++)
            {
                 //填充列表数据
                qDebug()<<"map markId =="<<kSDemoDlg_testInfos_list.at(y)["markId"];
                qDebug()<<" name =="<<kSDemoDlg_testInfos_list.at(y)["name"];
                qDebug()<<" mapName =="<<kSDemoDlg_testInfos_list.at(y)["mapName"];
                qDebug()<<" floor =="<<kSDemoDlg_testInfos_list.at(y)["floor"];
                qDebug()<<" type =="<<kSDemoDlg_testInfos_list.at(y)["type"];
                qDebug()<<" num =="<<kSDemoDlg_testInfos_list.at(y)["num"];
                qDebug()<<" x =="<<kSDemoDlg_testInfos_list.at(y)["x"];
                qDebug()<<" y =="<<kSDemoDlg_testInfos_list.at(y)["y"];
                qDebug()<<" qz =="<<kSDemoDlg_testInfos_list.at(y)["qz"];
                qDebug()<<" qw =="<<kSDemoDlg_testInfos_list.at(y)["qw"];
                qDebug()<<" theta =="<<kSDemoDlg_testInfos_list.at(y)["theta"];
                qDebug()<<" merchantNumber =="<<kSDemoDlg_testInfos_list.at(y)["merchantNumber"];
                qDebug()<<" merchantName =="<<kSDemoDlg_testInfos_list.at(y)["merchantName"];
                qDebug()<<" status =="<<kSDemoDlg_testInfos_list.at(y)["status"];
                qDebug()<<" command =="<<kSDemoDlg_testInfos_list.at(y)["command"];
                qDebug()<<" commandStatus =="<<kSDemoDlg_testInfos_list.at(y)["commandStatus"];


            }


        } catch (std::exception e) {
            cout << " setTestInfos_listCallBack异常！" << endl;
        }

    });


}


//sukai //增加表格列名
void KSDemoDlg::addHeaderData(){
//    for(int i=0; i<16; i++)
//    {
//        item_model->setItem(0,i,new QStandardItem("111"));
//    }

    //没数据时输入空数据
    QList<QMap<QString, QString>> maptestInfos_list;
    setdata(maptestInfos_list);

    //增加表格列名
    item_model->setHeaderData(0,Qt::Horizontal,"markId");
    item_model->setHeaderData(1,Qt::Horizontal,"name");
    item_model->setHeaderData(2,Qt::Horizontal,"mapName");
    item_model->setHeaderData(3,Qt::Horizontal,"floor");
    item_model->setHeaderData(4,Qt::Horizontal,"type");
    item_model->setHeaderData(5,Qt::Horizontal,"num");
    item_model->setHeaderData(6,Qt::Horizontal,"x");
    item_model->setHeaderData(7,Qt::Horizontal,"y");
    item_model->setHeaderData(8,Qt::Horizontal,"qz");
    item_model->setHeaderData(9,Qt::Horizontal,"qw");
    item_model->setHeaderData(10,Qt::Horizontal,"theta");
    item_model->setHeaderData(11,Qt::Horizontal,"merchantNumber");
    item_model->setHeaderData(12,Qt::Horizontal,"merchantName");
    item_model->setHeaderData(13,Qt::Horizontal,"status");
    item_model->setHeaderData(14,Qt::Horizontal,"command");
    item_model->setHeaderData(15,Qt::Horizontal,"commandStatus");


}
//灵活增加界面右侧数据显示形式
void KSDemoDlg::addrow(){
    /**************灵活增加界面右侧数据显示形式******************/
     //2. todo sukai
     //右侧列名 item_model->columnCount() 16
      for(int i=0; i<item_model->columnCount(); i++)
      {

          m_infoLabelList.append(new QLabel(this));
          m_infoLabelList[i]->setText(item_model->headerData(i, Qt::Horizontal).toString());
          m_infoEditList.append(new QLineEdit(this));
          m_infoEditList[i]->setEnabled(false);
      }
}


//sukai 填充数据
void KSDemoDlg::setdata(QList<QMap<QString, QString>> maptestInfos_list)
{

    /**************灵活增加界面右侧数据显示形式******************/
    //1.todo sukai
     //================ 方法一 ================================
   // item_model->clear();
    //没数据的时候加入空数据
    if(maptestInfos_list.size()<=0){
        for(int i=0; i<16; i++)
        {
            item_model->setItem(0,i,new QStandardItem(""));
        }
    }
    for(int y=0; y<maptestInfos_list.size()>0; y++)
    {
         //填充列表数据
        item_model->setItem(y,0,new QStandardItem(maptestInfos_list.at(y)["markId"]));
        item_model->setItem(y,1,new QStandardItem(maptestInfos_list.at(y)["name"]));
        item_model->setItem(y,2,new QStandardItem(maptestInfos_list.at(y)["mapName"]));
        item_model->setItem(y,3,new QStandardItem(maptestInfos_list.at(y)["floor"]));
        item_model->setItem(y,4,new QStandardItem(maptestInfos_list.at(y)["type"]));
        item_model->setItem(y,5,new QStandardItem(maptestInfos_list.at(y)["num"]));
        item_model->setItem(y,6,new QStandardItem(maptestInfos_list.at(y)["x"]));
        item_model->setItem(y,7,new QStandardItem(maptestInfos_list.at(y)["y"]));
        item_model->setItem(y,8,new QStandardItem(maptestInfos_list.at(y)["qz"]));
        item_model->setItem(y,9,new QStandardItem(maptestInfos_list.at(y)["qw"]));
        item_model->setItem(y,10,new QStandardItem(maptestInfos_list.at(y)["theta"]));
        item_model->setItem(y,11,new QStandardItem(maptestInfos_list.at(y)["merchantNumber"]));
        item_model->setItem(y,12,new QStandardItem(maptestInfos_list.at(y)["merchantName"]));
        item_model->setItem(y,13,new QStandardItem(maptestInfos_list.at(y)["status"]));
        item_model->setItem(y,14,new QStandardItem(maptestInfos_list.at(y)["command"]));
        item_model->setItem(y,15,new QStandardItem(maptestInfos_list.at(y)["commandStatus"]));


    }
    //sukai //增加表格列名
    // addHeaderData();

   //  UiInit();
     //==========================================方法二 列名是乱的，所以又采用方法一 ===========================================
//    for(int y=0; y<maptestInfos_list.size()>0; y++)
//    {

//              item_model->setColumnCount(maptestInfos_list.at(y).size());
//              //==========================================方法二 列名是乱的，所以又采用方法一 ===========================================
//              int i=0;
//              QMap<QString, QString>::const_iterator iter = maptestInfos_list.at(y).begin();
//                   while (iter != maptestInfos_list.at(y).end())
//                   {
//                       if(y==0){ //设置列名
//                           item_model->setHeaderData(i,Qt::Horizontal,iter.key());
//                           //


//                 }
//                       qDebug() << " KSDemoDlg column " << column;

//                      /**************灵活增加界面右侧数据显示形式******************/
//                       //2. todo sukai
//                        for(int i=0; i<item_model->columnCount(); i++)
//                        {
//                            m_infoLabelList.append(new QLabel(this));
//                            m_infoLabelList[i]->setText(item_model->headerData(i, Qt::Horizontal).toString());
//                            m_infoEditList.append(new QLineEdit(this));
//                            m_infoEditList[i]->setEnabled(false);
//                        }
                    //===============end===========================方法二 列名是乱的，所以又采用方法一 ===========================================


}
/**************************************************************************
* 函数名称：UiInit
* 函数功能：目标点管理对话框界面初始化
* 输入参数：无
* 输出参数：无
* 返回数值：void
* 创建人员：
* 创建时间：2021-03-20
* 修改人员：
* 修改时间：
**************************************************************************/
void KSDemoDlg::UiInit()
{
    m_PrimaryKeyLabel.setText(item_model->headerData(0, Qt::Horizontal).toString());
    m_NewButton.setText(QStringLiteral("增加"));
    m_QueryButton.setText(QStringLiteral("查询"));
    m_UpdateButton.setText(QStringLiteral("修改"));
    m_DeleteButton.setText(QStringLiteral("删除"));
    m_RefreshButton.setText(QStringLiteral("查询所有"));
    m_UpdateButton.setEnabled(true);
    m_OKButton.setText(QStringLiteral("确定"));
    m_CancelButton.setText(QStringLiteral("取消"));
    /**************灵活增加界面右侧数据显示形式******************/
    m_OKButton.setEnabled(false);
    m_CancelButton.setEnabled(false);
    /**************灵活增加界面右侧数据显示形式 END******************/
    QHBoxLayout *TotalHBoxLayout = new QHBoxLayout();
    QVBoxLayout *TotalVBoxLayout = new QVBoxLayout();
    QVBoxLayout *UserGroupVBoxLayout = new QVBoxLayout();
    QHBoxLayout *UserEditHBoxLayout = new QHBoxLayout();
    QHBoxLayout *UserButtonHBoxLayout = new QHBoxLayout();
    QFormLayout *UserPrimaryKeyFormLayout = new QFormLayout();
    QFormLayout *UserSelectFormLayout = new QFormLayout();
    QHBoxLayout *UserSelectHBoxLayout = new QHBoxLayout();
    QVBoxLayout *UserSelectVBoxLayout = new QVBoxLayout();
    /*****************界面右侧group布局******************/
    for (int i=0; i<m_infoLabelList.count(); i++)
    {
        UserSelectFormLayout->addRow( m_infoLabelList[i], m_infoEditList[i]);
    }
    UserSelectHBoxLayout->addWidget(&m_OKButton);
    UserSelectHBoxLayout->addWidget(&m_CancelButton);
    UserSelectVBoxLayout->addLayout(UserSelectFormLayout);
    UserSelectVBoxLayout->addLayout(UserSelectHBoxLayout);
    UserSelectVBoxLayout->addStretch();
    /*****************界面右侧group布局 END******************/

    UserPrimaryKeyFormLayout->addRow(&m_PrimaryKeyLabel, &m_PrimaryKeyLineEdit);
    UserEditHBoxLayout->addLayout(UserPrimaryKeyFormLayout);
    UserEditHBoxLayout->addWidget(&m_QueryButton);
    UserEditHBoxLayout->addStretch();

    UserButtonHBoxLayout->addWidget(&m_NewButton);
    UserButtonHBoxLayout->addWidget(&m_UpdateButton);
    UserButtonHBoxLayout->addWidget(&m_DeleteButton);
    UserButtonHBoxLayout->addWidget(&m_RefreshButton);
    UserGroupVBoxLayout->addLayout(UserEditHBoxLayout);
    UserGroupVBoxLayout->addLayout(UserButtonHBoxLayout);
    m_Group.setLayout(UserGroupVBoxLayout);
    TotalVBoxLayout->addWidget(&m_Group);
    TotalVBoxLayout->addWidget(m_TabView);
    TotalHBoxLayout->addLayout(TotalVBoxLayout, 3);
    TotalHBoxLayout->addLayout(UserSelectVBoxLayout, 1);
    setLayout(TotalHBoxLayout);
}
/**************************************************************************
* 函数名称：onNewUserButtonClick
* 函数功能：目标点管理对话框界新增目标点pose按钮槽函数
* 输入参数：无
* 输出参数：无
* 返回数值：void
* 创建人员：
* 创建时间：2021-03-20
* 修改人员：
* 修改时间：
**************************************************************************/
void KSDemoDlg::onNewButtonClicked()
{
    for (int i=0; i<m_infoEditList.count(); i++)
    {
        m_infoEditList[i]->setEnabled(true);
    }
    m_operator = INSERT;
    m_OKButton.setEnabled(true);
    m_CancelButton.setEnabled(true);
}
/**************************************************************************
* 函数名称：onQueryUserButtonClick
* 函数功能：目标点管理对话框界查询目标点pose按钮槽函数
* 输入参数：无
* 输出参数：无
* 返回数值：void
* 创建时间：2021-03-20
* 修改人员：
* 修改时间：
**************************************************************************/
void KSDemoDlg::onQueryButtonClicked()
{
    QString toFind = m_PrimaryKeyLineEdit.text();
    //sukai
    QString ID = item_model->headerData(0, Qt::Horizontal).toString();
    qDebug() << "ID " << ID ;

    //1.todo sukai 填充数据
    //填充数据
    updateTimer->start();
//    item_model->setFilter(ID + "=\'" + toFind + "\'");
//    item_model->select();
}
/**************************************************************************
* 函数名称：onUpdateButtonClicked
* 函数功能：目标点管理对话框界修改目标点pose按钮槽函数
* 输入参数：无
* 输出参数：无
* 返回数值：void
* 创建人员：
* 创建时间：2021-03-20
* 修改人员：
* 修改时间：
**************************************************************************/
void KSDemoDlg::onUpdateButtonClicked()
{
    int row = m_TabView->currentIndex().row();
    int columnCount = item_model->columnCount();
    //sukai 不加会报错
   if(m_infoEditList.size()!=columnCount || m_infoLabelList.size() !=columnCount)
           return;
   //sukai
    for (int i=0; i<columnCount; i++)
    {
        QString str = item_model->data(item_model->index(row,i)).toString();//第X行第Y列的内容
        m_infoEditList[i]->setEnabled(true);
        m_infoEditList[i]->setText(str);
    }
    m_operator = UPDATE;
    m_OKButton.setEnabled(true);
    m_CancelButton.setEnabled(true);

}
/**************************************************************************
* 函数名称：onDeleteButtonClicked
* 函数功能：目标点管理对话框界删除目标点pose按钮槽函数
* 输入参数：无
* 输出参数：无
* 返回数值：void
* 创建人员：
* 创建时间：2021-03-20
* 修改人员：
* 修改时间：
**************************************************************************/
void KSDemoDlg::onDeleteButtonClicked()
{

    ///api/markers/delete?markId=1
    QString  msg="/api/markers/delete?markId=";
    int toDelRow = m_TabView->currentIndex().row();
    if (QMessageBox::Ok == QMessageBox::warning(this, QStringLiteral("提示"), QStringLiteral("确定要删除") + item_model->data(item_model->index(toDelRow, 0)).toString() + QStringLiteral("吗?"), QMessageBox::Ok|QMessageBox::No))
    {
        msg=msg+item_model->data(item_model->index(toDelRow, 0)).toString();
         qDebug() << "Delete==== msg==== " << msg;
         sendMsg(msg);
        item_model->removeRow(toDelRow);
    }



    //填充数据
    updateTimer->start();

 //   m_model->select();
}
/**************************************************************************
* 函数名称：onDeleteButtonClicked
* 函数功能：目标点管理对话框界刷新目标点pose按钮槽函数
* 输入参数：无
* 输出参数：无
* 返回数值：void
* 创建人员：
* 创建时间：2021-03-20
* 修改人员：
* 修改时间：
**************************************************************************/
void KSDemoDlg::onRefreshButtonClicked(){
//    m_model->setTable(m_DBTableName);	//重新关联数据库表，这样才能查询整个表
//    m_model->select();

//    QString msg="/api/markers/query_name_list";
//    sendMsg(msg);
    //sukai 填充数据
    updateTimer->start();

}
/**************************************************************************
* 函数名称：onUserNameEditEmpty
* 函数功能：当m_UserNameEdit编辑框为空时，显示所有目标点pose
* 输入参数：无
* 输出参数：无
* 返回数值：void
* 创建人员：
* 创建时间：2021-03-20
* 修改人员：
* 修改时间：
**************************************************************************/
void KSDemoDlg::onPrimaryKeyLineEditEmpty(const QString & text)
{
    if (text.isEmpty())
    {
//        QString msg="/api/markers/query_name_list";
//        sendMsg(msg);
        //sukai 填充数据
          updateTimer->start();
        //sukai 填充数据

    }
}
/**************************************************************************
 * 函数名称：onCurrentTableViewActived
 * 函数功能：m_TableView视图选取当前行槽函数，内容映射到右侧目标点pose编辑中
 * 输入参数：无
 * 输出参数：无
 * 返回数值：void
 * 创建人员：
 * 创建时间：2021-03-20
 * 修改人员：
 * 修改时间：
 **************************************************************************/
void KSDemoDlg::onCurrentTableViewClicked(const QModelIndex & index)
{
    if (!m_OKButton.isEnabled() || (INSERT == m_operator))	//只有可编辑并且操作为修改操作时才映射内容
    {
        return;
    }
    int currentRow = index.row();
//    QSqlRecord recode = m_model->record(currentRow);
//    for (int i=0; i<recode.count(); i++)
//    {
//        m_infoEditList[i]->setEnabled(true);
//        m_infoEditList[i]->setText(recode.value(i).toString());
//    }
    //sukai 不加会报错
   if(m_infoEditList.size()!=column || m_infoLabelList.size() !=column)
           return;
    //sukai
     for (int i=0; i<column; i++)
     {
         QString str = item_model->data(item_model->index(currentRow,i)).toString();//第X行第Y列的内容
         m_infoEditList[i]->setEnabled(true);
         m_infoEditList[i]->setText(str);
     }

}
/**************************************************************************
 * 函数名称：onOKButtonClicked
 * 函数功能：OKButton点击槽函数，确定修改数据库
 * 输入参数：无
 * 输出参数：无
 * 返回数值：void
 * 创建人员：
 * 创建时间：2021-03-20
 * 修改人员：
 * 修改时间：
 **************************************************************************/
void KSDemoDlg::onOKButtonClicked()
{
//    for (int i=0; i<m_infoEditList.count(); i++)
//    {
//       // if (m_infoEditList[i+1]->text().isEmpty())
//          if (m_infoEditList[i]->text().isEmpty())
//        {
//            QMessageBox::warning(this, QStringLiteral("提示"), QStringLiteral("请将内容填写完整"), QMessageBox::Ok);
//            return;
//        }
//    }
    switch (m_operator)
    {
        case INSERT:
        {

        //  /api/markers/insert_by_pose?x=0.3&y=0.3&theta=2.6&type=11&num=33393&command=command&commandStatus=commandStatus

        if (QMessageBox::Ok == QMessageBox::warning(this, QStringLiteral("提示"), QStringLiteral("请确定是否增加"), QMessageBox::Ok|QMessageBox::No))
            {
                int col = item_model->columnCount();
                int row = item_model->rowCount();
                item_model->insertRow(row);

              QString  msg="/api/markers/insert_by_pose?";
                for (int i=0; i<col; i++)
                {
                  //  if(m_infoLabelList[i]->text()=="markId" ||m_infoLabelList[i]->text()=="floor" ||m_infoLabelList[i]->text()=="type" ||m_infoLabelList[i]->text()=="num" ||m_infoLabelList[i]->text()=="merchantNumber" ||m_infoLabelList[i]->text()=="merchantName" ||m_infoLabelList[i]->text()=="status" )
                  //      continue;
                    item_model->setData(item_model->index(row, i), m_infoEditList[i]->text());

                    if(i<(col-1)){
                        //sukai
                      msg =msg+  m_infoLabelList[i]->text()+"="+m_infoEditList[i]->text()+"&";
                    }else if(i==(col-1)){//最后一位
                      msg =msg+  m_infoLabelList[i]->text()+"="+m_infoEditList[i]->text();
                    }



                }
                //提交修改
                   sendMsg(msg);
                   qDebug() << "提交修改 msg " << msg;
               // item_model->submitAll();	//提交修改
            }


        }
            break;
        case UPDATE:
        {
        //  /api/markers/update?markId=1&name=charge_dock_2&type=11&num=33393&command=command&commandStatus=1

            if (QMessageBox::Ok == QMessageBox::warning(this, QStringLiteral("提示"), QStringLiteral("请确定是否修改"), QMessageBox::Ok|QMessageBox::No))
            {
                int col = item_model->columnCount();
                int CurrentRow = m_TabView->currentIndex().row();
                QString  msg="/api/markers/update?";
                for (int i=0; i<col; i++)
                {
                   // if(m_infoLabelList[i]->text()=="markId"  ||m_infoLabelList[i]->text()=="floor" ||m_infoLabelList[i]->text()=="type" ||m_infoLabelList[i]->text()=="num" ||m_infoLabelList[i]->text()=="merchantNumber" ||m_infoLabelList[i]->text()=="merchantName" ||m_infoLabelList[i]->text()=="status" )
                  //      continue;
                    item_model->setData(item_model->index(CurrentRow, i), m_infoEditList[i]->text());
                    if(i<(col-1)){
                        //sukai
                      msg =msg+  m_infoLabelList[i]->text()+"="+m_infoEditList[i]->text()+"&";
                    }else if(i==(col-1)){//最后一位
                      msg =msg+  m_infoLabelList[i]->text()+"="+m_infoEditList[i]->text();
                    }
                }
               // item_model->submitAll();	//提交修改
                //提交修改
                sendMsg(msg);
                 qDebug() << " msg " << msg;
            }
        }
            break;
        default:
            break;
    }
    for (int i=0; i<m_infoEditList.count(); i++)
    {
        m_infoEditList[i]->setText("");
        m_infoEditList[i]->setEnabled(false);
    }
   //  usleep(1000*1000*05);
//    QString msg="/api/markers/query_name_list";
//    sendMsg(msg);
   updateTimer->start();
    m_OKButton.setEnabled(false);
    m_CancelButton.setEnabled(false);

}
/**************************************************************************
* 函数名称：onCancelButtonClicked
* 函数功能：OKButton点击槽函数，不操作
* 输入参数：无
* 输出参数：无
* 返回数值：void
* 创建人员：
* 创建时间：2021-03-20
* 修改人员：
* 修改时间：
**************************************************************************/
void KSDemoDlg::onCancelButtonClicked()
{
    for (int i=0; i<m_infoEditList.count(); i++)
    {
        m_infoEditList[i]->setText("");
        m_infoEditList[i]->setEnabled(false);
    }
    m_OKButton.setEnabled(false);
    m_CancelButton.setEnabled(false);
}
/**************************************************************************
* 函数名称：~KsUserManageDlg
* 函数功能：目标点管理对话框析构函数
* 输入参数：无
* 输出参数：无
* 返回数值：void
* 创建人员：
* 创建时间：2021-03-20
* 修改人员：
* 修改时间：
**************************************************************************/
KSDemoDlg::~KSDemoDlg()
{
    qDebug() << "KSDemoDlg::~KSDemoDlg()";
    m_db.close();
}

//刷新数据
void KSDemoDlg::onUpdate() {
item_model->clear();
//sukai //增加表格列名
addHeaderData();
QString msg="/api/markers/query_name_list";
sendMsg(msg);
//usleep(1000*1000*05);
qDebug() << "onUpdate setdata";
//恢复数据更新一下
IIMTDriver::getInstance()->kSDemoDlg_testInfo_flg=1;


updateTimer->stop();
}
